package com.coderly.onlinegallerysharingplatform.toolkit;

import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * StpLogic 门面类，管理项目中所有的 StpLogic 账号体系
 * 添加 @Component 注解的目的是确保静态属性 DEFAULT 和 SPACE 被初始化
 */
@Component
@Slf4j
public class StpKit {

    public static final String SPACE_TYPE = "space";

    /**
     * 默认原生会话对象，项目中目前没使用到
     */
    public static final StpLogic DEFAULT = StpUtil.stpLogic;

//    /**
//     * User 会话对象，管理 User 表所有账号的登录、权限认证
//     */
//    public static final StpLogic USER = new StpLogic("user") {
//        @Override
//        public String splicingKeyTokenName() {
//            System.out.println("代码执行了");
//            return super.splicingKeyTokenName() + "-user";
//        }
//    };

    /**
     * Space 会话对象，管理 Space 表所有账号的登录、权限认证
     */
    public static final StpLogic SPACE = new StpLogic(SPACE_TYPE) {
        @Override
        public String splicingKeyTokenName() {
            log.info("{}-space", super.splicingKeyTokenName());
            return super.splicingKeyTokenName() + "-space";
        }
    };


}
